package com.briup.corejava.day22;

/**
 * Class对象的三种获取方法
 * 1、Class.forName("完全限定类名");
 * 2、类名.class
 * 3、对象.getClass();
 */
public class Test2 {
    public static void main(String[] args) throws ClassNotFoundException {
        // 使用三种方式获得day22/Student的字节码对象
        Class<?> c1 = Class.forName("com.briup.corejava.day22.Student");
        Class<Student> c2 = Student.class;
        Student s = new Student();
        Class<? extends Student> c3 = s.getClass();
        // 无论用什么方法，获得的Class对象，一个类型有且只有一个
        System.out.println(c1 == c2);
        System.out.println(c2 == c3);
        // 基本数据类型的class对象
        Class<Integer> c4 = int.class;
        Class<Boolean> c5 = boolean.class;
        // 数组类型的class对象
        String[] strings = new String[]{"hello","world"};
        int[] ints = new int[]{5,3,6,3};
        Class<? extends String[]> c6 = strings.getClass();
        Class<String[]> c7 = String[].class;
    }
}
